﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace QLKHACHHANG.DanhMucForm
{
    public partial class frmDanhXung : Form
    {
        frmCustomerConfig rootform;
        bool isSingle; //trang thai show tab
        public frmDanhXung(frmCustomerConfig root)
        {
            InitializeComponent();
            rootform = root;
            isSingle = false;
        }
        public frmDanhXung()
        {
            InitializeComponent();
            isSingle = true;
        }  
        private void frmDanhXung_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'ds_DanhXung.tbl_DanhXung' table. You can move, or remove it, as needed.            
            try
            {
                this.tbl_DanhXungTableAdapter.Connection.ConnectionString = SetConfig.getAppSetting("ConnectionString");
                this.tbl_DanhXungTableAdapter.Fill(this.ds_DanhXung.tbl_DanhXung);
                gvDanhxung.FocusedRowHandle = -999997;     
            }
            catch (Exception ex)
            {
                MessageBox.Show("Vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }

        private void frmDanhXung_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("Bạn có muốn thoát khỏi màn hình "+this.Text+" ?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
            {
                if(!isSingle) rootform.UpdateDanhxung();
            }
            else
            {
                e.Cancel = true;
            }
            
        }
        private void ResetForm()
        {
            btThem.Text = "Lưu";
            txtMadanhxung.Properties.ReadOnly = false;
            btXoa.Enabled = false;
            btSua.Enabled = false;
            txtMadanhxung.Focus();
            txtMadanhxung.Text = "";
            txtTendanhxung.Text = "";
            txtGhichu.Text = "";
            gvDanhxung.FocusedRowHandle = -999997;  
        }
        private void btThem_Click(object sender, EventArgs e)
        {
            if (btThem.Text == "Thêm")
            {
                // reset
                ResetForm();
            }
            else
            {
                //luu 
                if (txtMadanhxung.Text.Equals("") || txtTendanhxung.Text.Equals(""))
                {
                    MessageBox.Show("Vui lòng xem lại thông tin nhập vào !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                else
                {
                    try
                    {
                        DataRow row = ds_DanhXung.tbl_DanhXung.NewRow();
                        row["Madanhxung"] = txtMadanhxung.Text;
                        row["Tendanhxung"] = txtTendanhxung.Text;
                        row["Ghichu"] = txtGhichu.Text;
                        ds_DanhXung.tbl_DanhXung.Rows.Add(row);
                        this.tbl_DanhXungTableAdapter.Update(this.ds_DanhXung.tbl_DanhXung);
                    }
                    catch (Exception ex)
                    {
                        if (ex.Message.Contains("constrained to be unique"))
                        {
                            MessageBox.Show("Không lưu được do thông tin đã bị trùng, xin vui lòng kiểm tra lại!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        else MessageBox.Show("Lưu thất bại, vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;                       
                    }

                }
                ResetForm();
            }
        }

        private void btXoa_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("Bạn có muốn xóa danh xưng có mã: " + txtMadanhxung.Text + " ?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                {
                    txtMadanhxung.Text = "";
                    txtTendanhxung.Text = "";
                    txtGhichu.Text = "";
                    gvDanhxung.DeleteSelectedRows();
                    this.tbl_DanhXungTableAdapter.Update(this.ds_DanhXung.tbl_DanhXung);    
                }
                
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("conflicted"))
                {
                    MessageBox.Show("Không xóa đơợc do thông tin được sử dụng bởi chức năng khác, vui lòng kiểm tra lại!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else MessageBox.Show("Xoá thất bại, vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.tbl_DanhXungTableAdapter.Fill(this.ds_DanhXung.tbl_DanhXung);  
            }

        }

        private void btSua_Click(object sender, EventArgs e)
        {
            try
            {
                gvDanhxung.GetFocusedDataRow()["Tendanhxung"] = txtTendanhxung.Text;
                gvDanhxung.GetFocusedDataRow()["Ghichu"] = txtGhichu.Text;
                this.tbl_DanhXungTableAdapter.Update(this.ds_DanhXung.tbl_DanhXung);

            }
            catch (Exception ex)
            {
                MessageBox.Show("Sửa thất bại, vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btThoat_Click(object sender, EventArgs e)
        {
            Close();   
        }

        private void gvDanhxung_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {

            if (gvDanhxung.FocusedRowHandle >= 0)
            {
                txtMadanhxung.Text = gvDanhxung.GetFocusedDataRow()["Madanhxung"].ToString();
                txtTendanhxung.Text = gvDanhxung.GetFocusedDataRow()["Tendanhxung"].ToString();
                txtGhichu.Text = gvDanhxung.GetFocusedDataRow()["Ghichu"].ToString();
                txtMadanhxung.Properties.ReadOnly = true;
                btSua.Enabled = true;
                btXoa.Enabled = true;
                btThem.Text = "Thêm";
            }
            else
            {
                ResetForm();
            }
        }

        private void btRefresh_Click(object sender, EventArgs e)
        {
            this.tbl_DanhXungTableAdapter.Fill(this.ds_DanhXung.tbl_DanhXung);
        }
      
    }
}
